<?php if(!defined('DB_NAME')) die();

// 主题设置相关
if( !ismobile() && get('ini_pre_posts') ) add_action( 'pre_get_posts', 'ini_pre_posts' );  #页面不同文章数
if( ismobile() && get('ini_mpre_posts') ) add_action( 'pre_get_posts', 'ini_pre_posts' ); #手机页面不同文章数
if( !is_admin() && get('ini_min_html') && $obj_key== $ini_key ) add_action( "wp_loaded", create_function(false,"ob_start('ini_min_html');") ); #压缩HTML代码
if( get('ini_ds_avatar') ) add_filter( 'get_avatar', 'ini_ds_avatar', 10, 3 ); #使用多说头像
if( !get('ini_wpbar') ) show_admin_bar(false); #wpadminbar

//导航菜单
class description_walker extends Walker_Nav_Menu{
	function start_el(&$output, $item, $depth, $args){
		global $wp_query;
		$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
		$class_names = '';
		$classes = empty( $item->classes ) ? array() : (array) $item->classes;
		$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
		$class_names = ' class="'. esc_attr( $class_names ) . '"';
		$output.= $indent . '<li' . $class_names .'>';
		$icon = ! empty( $item->attr_title ) ? esc_attr( $item->attr_title ) : '';
		$attributes = ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
		$attributes.= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';
		$attributes.= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : '';
		$item_output = $args->before;
		$item_output.= '<a'. $attributes .'><i class="'. $icon .'"></i>';
		$item_output.= $args->link_before .apply_filters( 'the_title', $item->title, $item->ID );
		$item_output.= '</a>';
		$item_output.= $args->after;
		$output.= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
	}
}

// 清理CSS选择器
if( !is_admin() ){ #后台上帝模式
	add_filter('nav_menu_css_class', 'css_filter', 100, 1);   #导航class
	add_filter('nav_menu_item_id', 'css_filter', 100, 1);   #导航id
	function css_filter($var){
		return is_array($var) ? array_intersect( $var, array( 'current-menu-item', 'current-post-ancestor', 'current-menu-ancestor', 'current-menu-parent', 'current_page_item', 'menu-item-has-children') ) : '';
	}
}

// 去后台页脚
add_filter( 'update_footer', create_function(null, '') );
add_filter( 'admin_footer_text', create_function(null, '') );

// 去wp_head多余内容
function ini_filter_head(){
	remove_action('wp_head','_admin_bar_bump_cb');
	remove_action( 'wp_head','feed_links_extra',3 );
	remove_action( 'wp_head','feed_links',2 );
	remove_action( 'wp_head','rsd_link' );
	remove_action( 'wp_head','wlwmanifest_link' );
	remove_action( 'wp_head','index_rel_link' );
	remove_action( 'wp_head','parent_post_rel_link',10,0 );
	remove_action( 'wp_head','start_post_rel_link',10,0 );
	remove_action( 'wp_head','adjacent_posts_rel_link',10,0 );
	remove_action( 'wp_head','wp_generator' );
	if( ismobile() ){
		remove_action( 'wp_head', 'wp_shortlink_wp_head' );
		remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head' );
		remove_action( 'wp_head', 'rel_canonical' ); 
	}
}
add_action('get_header','ini_filter_head');

if( function_exists('themedie') ):
function at_remove_dup_canonical_link() {
	return false;
	}
add_filter( 'wpseo_canonical', 'at_remove_dup_canonical_link' );

// 添加默认头像
function default_avatar( $avatar_defaults ){
	$myavatar = TPDIR.'/res/avatar.jpg';
	$avatar_defaults[$myavatar] = "Initial 头像";
	return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'default_avatar' );

// 用户面板显示更多信息
#注册IP
function log_ip($user_id){
	$ip = $_SERVER['REMOTE_ADDR'];
	update_user_meta($user_id, 'signup_ip', $ip);
}
#登录IP
if( $obj_key==$ini_key){
	function last_login( $login ){
		global $user_id;
		$user = get_userdatabylogin( $login );
		update_user_meta( $user->ID, 'last_login', current_time( 'mysql' ) );
		$last_login_ip = $_SERVER['REMOTE_ADDR'];
		update_user_meta( $user->ID, 'last_login_ip', $last_login_ip);
	}
	#添加额外栏目
	function ini_add_column($columns){
		$columns['user_url'] = '网站';
		$columns['reg_time'] = '注册时间';
		$columns['last_login'] = '上次登录';
		unset($columns['name']);  // 咔掉姓名栏目
		return $columns;
	}
}
#用户面板添加栏目
function ini_user_column($value, $column_name, $user_id){
	$user = get_userdata( $user_id );
	if( 'user_url' == $column_name )
		return '<a href="'.$user->user_url.'" target="_blank">'.$user->user_url.'</a>';
	if('reg_time' == $column_name ){
		return get_date_from_gmt( $user->user_registered ).'<br />'.get_user_meta( $user->ID, 'signup_ip', true);
	}
	if( 'last_login' == $column_name && $user->last_login ){
		return get_user_meta( $user->ID, 'last_login', true).'<br />'.get_user_meta( $user->ID, 'last_login_ip', true );
	}
	return $value;
}
add_action( 'user_register', 'log_ip');
add_action( 'wp_login', 'last_login' );
add_filter('manage_users_columns', 'ini_add_column');
add_action( 'manage_users_custom_column', 'ini_user_column', 100, 3 );

// 压缩HTML代码
function ini_min_html($html){
	$search = array( '/\>[^\S ]+/s', '/[^\S ]+\</s' );
	$replace = array( '>', '<' );
	$html = preg_replace($search, $replace, $html);
	return $html;
}
endif;

// 阻止站内PingBack
add_action('pre_ping','ini_pingback');
function ini_pingback( $links ){
	$home = get( 'home' );
	foreach ( $links as $l => $link )
	if( 0 === strpos( $link, $home ) )
	unset($links[$l]);
}

// 页面文章数
if(ismobile()  && function_exists( 'themedie')){
	function ini_pre_posts( $query ){
		if( $query->is_main_query() ){
			$num = '';
			get('ini_media_id') ? $media = explode(',', get('ini_media_id') ) : $media = '';
			if( is_home() ){ $num = get('ini_mpost_num'); }
			else if( is_category() ){ is_category( $media ) ? $num = get('ini_mmedia_num') : $num = get('ini_mcat_num'); }
			else if( is_tag() ){ $num = get('ini_mtag_num'); }
			else if( is_date() ){ $num = get('ini_mdate_num'); }
			else if( is_author() ){ $num = get('ini_mauthor_num'); }
			else if( is_search() ){ $num = get('ini_msearch_num'); }
			else if( is_archive() ){ $num = get('ini_marchive_num'); }
			if( '' != $num ){ $query->set( 'posts_per_page', $num ); }
		}
		return $query;
	}
} elseif(function_exists('themedie')) {
	function ini_pre_posts( $query ){
		if( $query->is_main_query() ){
			$num = '';
			get('ini_media_id') ? $media = explode(',', get('ini_media_id') ) : $media = '';
			if( is_home() ){ $num = get('ini_post_num'); }
			else if( is_category() ){ is_category( $media ) ? $num = get('ini_media_num') : $num = get('ini_category_num'); }
			else if( is_tag() ){ $num = get('ini_tag_num'); }
			else if( is_date() ){ $num = get('ini_date_num'); }
			else if( is_author() ){ $num = get('ini_author_num'); }
			else if( is_search() ){ $num = get('ini_search_num'); }
			else if( is_archive() ){ $num = get('ini_archive_num'); }
			if( '' != $num ){ $query->set( 'posts_per_page', $num ); }
		}
		return $query;
	}
}

function ini_profile( $user_contact ){
	$user_contact['weibo'] = '新浪微博';
	$user_contact['tweibo'] = '腾讯微博';
	$user_contact['ggplus'] = 'Google+ ID';
	$user_contact['irole'] = '个人职位';
	$user_contact['org'] = '公司信息';
	return $user_contact;
}
add_filter('user_contactmethods','ini_profile');

// 使用多说头像
function ini_ds_avatar($avatar){
	$avatar = str_replace(array("www.gravatar.com", "0.gravatar.com", "1.gravatar.com", "2.gravatar.com"), "gravatar.duoshuo.com", $avatar);
	return $avatar;
}

// SMTP邮箱设置
if( get('ini_smtp_from') && get('ini_smtp_fromname') && $obj_key==$ini_key && get('ini_smtp_password') ){
	function mail_smtp( $phpmailer ){
		$phpmailer->From = get('ini_smtp_from');
		$phpmailer->FromName = get('ini_smtp_fromname');
		$phpmailer->Host = get('ini_smtp_host');
		$phpmailer->Port = get('ini_smtp_port');
		$phpmailer->SMTPSecure = get('ini_smtp_secure');
		$phpmailer->Username = get('ini_smtp_from');
		$phpmailer->Password = get('ini_smtp_password');
		$phpmailer->IsSMTP();
		$phpmailer->SMTPAuth = true;
	}
	add_action('phpmailer_init','mail_smtp');
}

?>